#pragma once
#include<iostream>

typedef void (*task_t)();

void PrintLog()
{
    std::cout<<"print log task"<<std::endl;
}

void ReloadConf()
{
    std::cout<<"reload conf task"<<std::endl;
}

void ConntectMysql()
{
    std::cout<<"connect mysql task"<<std::endl;
}

task_t tasks[3]={PrintLog,ReloadConf,ConntectMysql};

int getTask()
{
    return rand()%3;
}

void work()
{
    while(true)
    {
        int idx=0;
        ssize_t n=read(0,&idx,sizeof(idx));
        if(n<=0)break;//当父进程的读端关闭，子进程将管道内的数据全部读完之后
        //就会读到文件的结尾，返回值就是0(当读失败的时候返回小于0的数字)
        //反正当读完之后活着读的时候出现问题就跳出循环
        if(idx<0||idx>3)
            break;
        tasks[idx]();
        sleep(1);
    }
}